package com.greenline.push.dal.pushcenter;

import java.util.List;

import com.greenline.push.dal.pushcenter.dataobject.DomainDO;
import com.greenline.push.dal.query.DomainQuery;

/**
 * @Type DomainDAO
 * @Desc
 * @author zhangdp
 * @date 2014年11月10日
 */
public interface DomainDAO {

	/**
	 * insert domain DO into DB
	 * 
	 * @param domainDO
	 * @return
	 */
	Long insert(DomainDO domainDO);

	/**
	 * get domain DO from DB by id
	 * 
	 * @param id
	 * @return
	 */
	DomainDO getById(Long id);

	/**
	 * update DomainDO
	 * 
	 * @param domainDO
	 * @return -1 表示删除失败；>0 表示删除成功
	 */
	Integer update(DomainDO domainDO);

	/**
	 * delete by id
	 * 
	 * @param id
	 * @return -1 表示删除失败；>0 表示删除成功
	 */
	Integer delete(Long id);

	/**
	 * query by page
	 * 
	 * @param query
	 * @return
	 */
	DomainQuery listByQuery(DomainQuery query);

    List<DomainDO> listAll();

    DomainDO getByCode(String code);
}
